// 导入 napi 宏（必须使用 napi_derive_ohos）
use napi_derive_ohos::napi;

// 图像库相关
use image::{ImageBuffer, RgbaImage, ColorType};
use image::codecs::png::PngEncoder;

// 文件操作相关
use std::fs::File;
use std::io::BufWriter;
use std::path::Path;

/// 鸿蒙可调用的接口：创建图像并保存
/// path 参数：保存图像的路径（例如 "/data/local/tmp/modified.png"）
/// 返回 true 表示成功，false 表示失败
#[napi]
pub fn create_and_save_red_square_image(path: String) -> bool {
    let mut img: RgbaImage = ImageBuffer::new(800, 600);

    // 在图像上绘制红色方块
    for (x, y, pixel) in img.enumerate_pixels_mut() {
        if x > 200 && x < 400 && y > 200 && y < 400 {
            *pixel = image::Rgba([255, 0, 0, 255]); // 红色
        }
    }

    // 保存到路径
    let save_path = Path::new(&path);
    let file = match File::create(save_path) {
        Ok(f) => f,
        Err(_) => return false,
    };
    let writer = BufWriter::new(file);

    match PngEncoder::new(writer).encode(
        &img,
        img.width(),
        img.height(),
        ColorType::Rgba8,
    ) {
        Ok(_) => true,
        Err(_) => false,
    }
}

